1. Technical Field
The present invention generally relates to a method of updating data points in a memory and, more particularly, to a method of updating an adaptive surface or table representing an area of memory such as that of an engine control unit of a motor vehicle.
2. Discussion
While the following discussion is directed toward an automotive technology, the present invention is not so limited and has broad application to any field involving the updating of adaptive memory cells. Many platforms, such as automotive vehicles have standard components which are controlled by a generically programmed controller. For example, automotive vehicles typically include an engine and an engine controller. For any particular vehicle model, a generically programmed engine controller is installed so as to accommodate the general operating characteristics of the type of engine installed in that vehicle model.
To program the controller, a pre-selected number of controlled components, such as the engines in the automotive example above, are tested for certain operating characteristics. Thereafter, each controller is programmed to accommodate the identified general characteristics. However, component-to-component variances may give rise to certain discrepancies between a specific controller""s programming and the associated component""s actual performance.
To accommodate the discrepancies, most platforms are equipped with feedback-type systems to detect and temporarily correct such errors. For instance, a automotive vehicle may include sensors for detecting errors between an engine controller""s volumetric efficiency control surface and the vehicle engine""s actual volumetric efficiency. Although feedback systems may correct for errors on a temporary basis, should the error persist for a given period of time, it is sometimes advantageous to modify the overall controller program settings to adjust the component""s actual operating parameters. In this way, the error is compensated for, and thereby eliminated, without always relying on the feedback system.
To account for such persistent discrepancies, a controller memory may be updated so that its programming is adapted to the associated component""s true performance. To accomplish this, the controller memory may be modeled as a plurality of cells in the form of a three-dimensional surface or a two-dimensional table wherein each cell represents a data point of the memory. In the automotive environment, a three-dimensional surface having engine speed as a first or X-input and engine load as a second or Y-input may be used to define a surface representative of volumetric efficiency. For airflow through the throttle, voltage may be used as an X-input to define a two-dimensional table.
According to the prior art, after various sensors define a persistent error between component performance and controller programming, the error is used to update a single cell in the surface or table. This is accomplished by using a calculated point based on X and Y inputs to access the three-dimensional surface (or X input of the two-dimensional table). The cell closest to the calculated point is then updated using an error value based on the distance between the calculated point and the closest cell. However, when the calculated point falls between two adjacent cells, learned errors are sometimes associated with the wrong cell. For example, when the calculated point falls on one side of the mid-point between adjacent cells, only the closest one cell is updated.
In view of the foregoing, it would be desirable to provide a method of updating memory cells (i.e., data points) such that more than one cell can be updated simultaneously depending upon the location of the calculated point relative to the cells. It would also be desirable to weigh the amount each cell is updated during the updating step according to the proximity of the calculated point to the adjacent cells.
The above and other objects are provided by a method of updating an array of cells in a surface or table representative of memory. The three-dimensional surface array is modeled as a square bordered by four cells with one cell at each corner. Between each array corner cell, the array spacing is divided into three zones. As such, nine sub-regions of the array square are defined. Depending upon which of the nine sub-regions a calculated point based on an operational parameter falls into when accessing the array, different cells are updated. In the case of a two-dimensional table array, three sub-regions are defined between adjacent cells. Depending upon which sub-region the calculated point falls into, one or both of the table array cells is updated. It should also be noted that the dimensions of each sub-region may be selected such that the calculated point is more or less likely to fall within certain sub-regions.
As a further feature of the present invention, the amount of adaptive gain applied to each cell to be updated is adjusted depending upon which sub-region the calculated point falls within.